#include <sys/types.h>

int mac_char_to_u_char(char mac_char[18],u_int8_t* u_c)
{
    for(int i=0;i<sizeof(mac_char);i++)
    {
        char2_to_u_char(mac_char+i*3,u_c+i);
    }
    return 0;
}

int char2_to_u_char(char c[2], u_int8_t* u_c)
{
    if(c[0]<'0' || c[0]>'f') return -1;
    if(c[0]>'9' && c[0]<'a') return -1;
    if(c[1]<'0' || c[1]>'f') return -1;
    if(c[1]>'9' && c[1]<'a') return -1;
    
    if(c[0]>='0' && c[0]<='9') c[0]=c[0]-'0';
    if(c[0]>='a' && c[0]<='f') c[0]=c[0]-'a'+10;
    if(c[1]>='0' && c[1]<='9') c[1]=c[1]-'0';
    if(c[1]>='a' && c[1]<='f') c[1]=c[1]-'a'+10;

    *u_c=c[0]*16+c[1];
    
    return 0;

}